# 函数定义
# 增加参数的类型不能骑到限制类型的作用
def square(x: int):
    s = x * x
    return s


# 调用函数
print(square(100))


# 参数默认值
def add(x=200, y=100):
    return x + y


# 调用函数的方法
print(add(20))
print(add(x=20))
print(add(x=20, y=200))

print(add(y=200))

# lambda表达式,简化函数的语法
fun = lambda x, y: x ** 2 + y

print(fun(100, 200))

l = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l)

# filter： 对集合进行过滤
print(list(filter(lambda x: x % 2 == 1, l)))


# 递归
def sum(i):
    if i == 1:
        return 1
    return sum(i - 1) * i


print(sum(10))
